# This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.1063.1.7 -> 1.1063.1.8 # drivers/acpi/tables.c 1.9 -> 1.10 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 03/08/07 achirica@telefonica.net 1.1063.3.1 # [netdrvr airo] Missing defines (only for documentation) # -------------------------------------------- # 03/08/07 achirica@telefonica.net 1.1063.3.2 # [netdrvr airo] MAC type changed to unsigned # -------------------------------------------- # 03/08/07 davidm@tiger.hpl.hp.com 1.1066 # ia64: Backtraces of all processes on INIT, warning cleanup. # (Backported from 2.5). # -------------------------------------------- # 03/08/07 tony.luck@intel.com 1.1067 # ia64: cleaning up the INIT code # (Backported from 2.5 by Bjorn Helgaas) # -------------------------------------------- # 03/08/07 achirica@telefonica.net 1.1063.3.3 # [PATCH] Missing lines for Wireless Extensions 16 # -------------------------------------------- # 03/08/07 achirica@telefonica.net 1.1063.3.4 # [PATCH] MIC support with newer firmware # -------------------------------------------- # 03/08/07 achirica@telefonica.net 1.1063.3.5 # [PATCH] Safer unload code # -------------------------------------------- # 03/08/07 achirica@telefonica.net 1.1063.3.6 # [PATCH] Fix adhoc config # -------------------------------------------- # 03/08/07 bjorn.helgaas@hp.com 1.1068 # ia64: MCA: pass GP *physical address* to SAL. # # Based on a patch by Keith Owens. # -------------------------------------------- # 03/08/07 bjorn.helgaas@hp.com 1.1069 # ia64: minor bugfixes and whitespace cleanup to follow 2.5. # -------------------------------------------- # 03/08/07 bjorn.helgaas@hp.com 1.1063.1.8 # (acpi_get_table_header_early): Prefer X_DSDT over DSDT, if it exists. # -------------------------------------------- # diff -Nru a/drivers/acpi/tables.c b/drivers/acpi/tables.c --- a/drivers/acpi/tables.c Wed Oct 8 09:06:05 2003 +++ b/drivers/acpi/tables.c Wed Oct 8 09:06:05 2003 @@ -257,10 +257,17 @@ /* Map the DSDT header via the pointer in the FADT */ if (id == ACPI_DSDT) { - struct acpi_table_fadt *fadt = (struct acpi_table_fadt *) *header; + struct fadt_descriptor_rev2 *fadt = (struct fadt_descriptor_rev2 *) *header; + + if (fadt->header.revision == 3 && fadt->Xdsdt) { + *header = (void *) __acpi_map_table(fadt->Xdsdt, + sizeof(struct acpi_table_header)); + } else if (fadt->V1_dsdt) { + *header = (void *) __acpi_map_table(fadt->V1_dsdt, + sizeof(struct acpi_table_header)); + } else + *header = 0; - *header = (void *) __acpi_map_table(fadt->dsdt_addr, - sizeof(struct acpi_table_header)); if (!*header) { printk(KERN_WARNING PREFIX "Unable to map DSDT\n"); return -ENODEV;